export{};

let name:string='hello'
console.log(name);

let arr:(number | string)[]=[1,2,'奔驰',4,'宝马']
console.log(arr);


const formatTime=(date?:Date|string):string=>{
    if(!date) date=new Date();
    if(typeof date==='string') date=new Date(date)
    const h=date.getHours();
    const m=date.getMinutes();
    const s=date.getSeconds();
    return `${h}:${m}:${s}`;
}


// 2.定义访问记录项  对象类型  访问记录： 列表   需要存储在本地  key 字面量类型
type Data={
    count:number;
    time:string
}
type List =Array<Data>;

const KEY='ts-demo-data';


// 3.封装 获取访问历史记录函数 返回类型是记录列表

const getData=()=>{
    const str=localStorage.getItem(KEY);
    return JSON.parse(str||'[]') as List;
}

// 4.封装修改访问历史记录函数

const updateData=()=>{
    // 1.拿到本地数据
    const list =getData();
    // 拿到数组中的最后一条数据
    const lastItem=list[list.length-1];
    
    list.push({
      count:lastItem ? lastItem.count + 1:1,
      time:formatTime()
    })
    // 本地存储
    localStorage.setItem(KEY,JSON.stringify(list));
}

// 5 封装一个展示历史记录数据 的函数 


const render=()=>{
    updateData();
    const data=getData();
    const app=document.querySelector("#app") as HTMLDivElement
    app.innerHTML = data.map(item=>`次数:${item.count},时间:${item.time}`).join("<br/>")

}

render()